<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Login_Model extends CI_Model {
    
    const TABLE_USER = 'usuario';
    const TABLE_PERFIL = 'perfil';
    const TABLE_CLIENTE = 'cliente';
    public $idusuario = '';
    public $nome = ''; 
    public $perfil = '';
    public $login = '';
    public $senha = '';
    public $ativo = '';

    function __construct($data = null) { 
        parent::__construct();
        if ($data) { 
            $this->_init($data); 
        }
    }
    function _init($data, $perfil, $cliente) { 
        if(is_object($data)){
            if (isset($data->idusuario)){ 
                $this->idusuario = $data->idusuario; 
            }else{
                $this->idusuario = null; 
            }
            $this->nome = @$cliente->nome;
            $this->perfil = $perfil->descricao;
            $this->login = $data->login;
            $this->senha = $data->senha;
            $this->ativo = $data->ativo;
        }
        elseif(is_array($data)){ 
            if (isset($data['idusuario'])) {
                $this->idusuario = $data['idusuario']; 
            }else{
                $this->idusuario = null;
            }
            $this->cliente = $data['nome'];
            $this->perfil = $data['descricao'];
            $this->login = $data['login'];
            $this->senha = $data['senha'];
            $this->ativo = $data['ativo'];
        } 
    }
    function findUsuarioByLogin($login){
        $query = $this->db->get_where(self::TABLE_USER, array('login'=>$login));
        if ($query->num_rows() > 0 ) {      
            $usuario = $query->row();
            $query1 = $this->db->get_where(self::TABLE_PERFIL, array('idperfil'=>$usuario->perfil_idperfil));
            $perfil = $query1->row();
            $query2 = $this->db->get_where(self::TABLE_CLIENTE, array('usuario_idusuario'=>$usuario->idusuario));
            $cliente = $query2->row();
            $this->_init($usuario, $perfil, $cliente);         
            return $this;
        }
        return false;
    }
    function alteraSenha($new){
        //if(!empty($this->session->userdata('idusuario'))){            
            $this->db->where(array('idusuario'=>$this->session->userdata('idusuario')));
            $this->db->update(self::TABLE_USER,$new);
            return true;
       // }
    }
}
